type ObjA = {
  a: string
  b: number
}
type ObjB = ObjA & {
  c: boolean
}
const objA: ObjA = {
  a: 'q',
  b: 1
}
objA
const objB: ObjB = {
  a: 'q',
  b: 12,
  c: true
}
objB
// objA = objB //字段多的可以赋值给字段多的
// objB = objA //字段少的不能赋值给字段多的
function fn(obj: ObjB) {
  console.log(obj)
}
fn
// fn(objB) // 传参 字段多的可以传给字段少 类型兼容
// fn(objA) // 传参 字段少的不可以传给多的， 因为类型不兼容
